iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Web 3

Smart-Contract Language: Move系列 第 26

Day 26 回顧

  • 分享至 

  • xImage
  •  

太好了,我們已經把 Move 大致掌握了! 是否都踏上成為 Move 大師了呢 ?!
我們來回顧一些筆者認為很重要的主題。

泛型 Generic

大家如果有寫過其他程式語言應該對他不陌生,在 Move 裡,使用泛型可以為任何有某些特徵的類型實作該類型的操作,而這樣做的好處,你可以寫出通用性邏輯運算 (在 Struct 或 function)。像是你可以定義帳戶的通用性邏輯,創造 Account 類型去定義所需要的操作,或是定義資產類型等等。

資源 Resources

Resources 都會有一個 Key,這個 Key 在同個帳號之下只會存在一個。利用泛型可以將資源推廣成各種實作的規範。而 Resources 的 key 就包含了完整的規範資訊。像 0x1 就是標準模組存放的 Account 地址。也只有該模組能夠操作旗下定義的類型。

example

address 0x2 {
	module Example {
	    struct MyStore<T> {
	        value: u64
		  }
	}
}

script {
	
	use 0x2::Example::MyStore<bool>

	func main() {
		//.....
	}
}

以這個範例程式來說,只有 0x2::Example 這個模組可以操作 0x42::Example::MyStore,整體示意圖會像下面這樣,以帳號地址為首,幫助平面化。

| 與 Solidity 不太依樣,並非將合約地址擺在第一層,有興趣的可以自行比對。
https://ithelp.ithome.com.tw/upload/images/20221008/201509535O4OEyxyi3.png

Type 能力

比較特別的還有類型都可以給予能力,在區塊鏈中,針對每個模塊和函數進行能力釋放是很重要的設計,也是需要清楚掌握。

其他的筆者認為,可以把本篇文章當作一個語言使用手冊,遇到再來翻閱會更有感覺,此外,寫好測試的能力也是需要掌握的,讓我們 Move to Day 27。


上一篇
Day 25 Advanced Topics: Unit Test
下一篇
Day 27 First Example - Alice & Bob
系列文
Smart-Contract Language: Move30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言